# coding=utf-8
from rest_framework import serializers

'''这里继承的是serializers.Serializer，不再是serializers.ModelSerializer'''
'''
两者的区别是：
ModelSerializer只能用模型类的属性进行操作，优点是：代码量少，缺点是：属性已经固定死了
Serializer是自己定义属性的，想要什么属性自己写，优点：灵活，缺点：代码量多
'''
class ChoiceGoodsSerializer(serializers.Serializer):
    '''选择商品列表的序列化和反序列化'''

    '''写法跟模型类的写法大致一样，唯一的区别就是模型类是model.类型，Serializer类是serializers.类型'''

    # 反序列化
    keyword = serializers.CharField(label='货品搜索关键字，名称，型号，规格，颜色',write_only=True,required=False)
    # 反序列化和序列化都使用的属性
    number_code = serializers.CharField(label='货品编号',required=False)
    category_id = serializers.IntegerField(label='货品类别ID',required=False)
    warechouse_id = serializers.IntegerField(label='仓库ID',required=False)

    # 序列化都使用的属性
    id = serializers.IntegerField(label='货品ID',read_only=True)
    name = serializers.CharField(label='货品名称',read_only=True)
    category_name = serializers.CharField(label='货品名称',read_only=True)
    specification = serializers.CharField(label='货品规格',read_only=True)
    model_number = serializers.CharField(label='货品型号',read_only=True)
    color = serializers.CharField(label='货品颜色',read_only=True)
    units__basic_name = serializers.CharField(label='货品单位',read_only=True)
    cur_inventory = serializers.CharField(label='当前库存',read_only=True)

